
class QueryProcessor {
 public:
  bool processQuery( QuerySpec& query );

 private:
  bool processClassSpec  ( ClassSpec& clsSpc  );
  bool processMemberSpec ( MemberSpec& memSpc );

  bool processObjectSpec ( ObjectSpec& objSpc );
  bool processExpr       ( Expr&       expr   );

  void parseError ( unsigned int );
}

bool QueryProcessor::processQuery ( QuerySpec& query ) {
 if (query.cmd == QUERY_CMD_CLASS) {
  return processClassSpec ( query.classSpec );
 }
}

bool QueryProcessor::proccessClassSpec ( ClassSpec& spec ) {
 return processMemberSpec ( spec.members );
}
